const util =require('../utils/util')
const api =require('../config/api')
// promise封装wx.checkSession
function checkSession(){
  return new Promise(function(resolve,reject){
    wx.checkSession({
      success:function(){
        resolve(true);
      },
      fail:function(){
        reject(false);
      }
    })
  })
}
// Promise封装wx.login 
// 当点击微信登陆按钮时 需要调用这个login函数  login函数就是为了拿到code
function login(){
  return new Promise((resolve,reject)=>{ 
    // login函数中会调用 wx.login api
    wx.login({ 
      success: (res) => {
        if(res.code){//调用成功就会拿到res中的code
//调用resolve 表示 当调用login函数时， 
// login().then(res） 这个res 就是 resolve(res)中的res
          resolve(res)
        }else{
          reject(res);
        }
      },
      fail:function(err){
        reject(err)
      }
    })
  })
}

// 调用微信登录
function loginByWeixin (userInfo){
  return new Promise((resolve,reject)=>{
    // 调用login函数拿到code
    return login().then(res=>{
      console.log(res);
      util.request(api.AuthLoginByWeixin,{
        code:res.code,
        userInfo:userInfo
      },'post').then(res=>{
        console.log(res);
        if(res.errno==0){
          wx.setStorageSync('userInfo', res.data.userInfo)
          wx.setStorageSync('token', res.data.token)
          resolve(res);
        }else{
          reject(res)
        }
      }).catch((err)=>{
        reject(err);
      });
    }).catch((err)=>{
      reject(err);
    })
  })
}
function checkLogin(){
  return new Promise(function(resolve,reject){
    if(wx.getStorageSync('userInfo')&&wx.getStorageSync('token')){
      checkSession().then(()=>{
        resolve(true);
      }).catch(()=>{
        reject(false);
      });
    }else{
      reject(false)
    }
  })
}
module.exports={
  checkLogin,
  loginByWeixin,
}